#include<iostream>
#include<vector>
#include<algorithm>
#include<queue>
using namespace std;
const int N=1e7+10;
vector<int> f(N);
long long int n,x;
template<class T>
struct cmp
{   
    bool operator()(T x,T y)
    {
    if(x.first==y.first)
    {
        return (x.second-x.first)>(y.second=y.first);
    }
    else if(x.second==y.second)
    {
        return x.first<y.first;
    }
    else if((x.second-x.first)==(y.second-y.first))
        return x.first>y.first;

    return (x.second-x.first)>(y.second-y.first);
    }
};
priority_queue<pair<int,int>,vector<pair<int,int>>,cmp<pair<int,int>>> q;
vector<pair<int,int>> v;
// bool cmp(pair<int,int> x,pair<int,int> y)
// {
//     if(x.first==y.first)
//     {
//         return (x.second-x.first)<(y.second=y.first);
//     }
//     else if(x.second==y.second)
//     {
//         return x.first>y.first;
//     }
//     return x.first<y.first;
// }
int main()
{
    cin>>n>>x;
    for(int i=1;i<=n;i++)
    {
        long long x;
        cin>>x;
        f[i]=f[i-1]+x;
    }
    long long l=1,r=1;
    while(r<=n)
    {
        
        if(f[r]-f[l-1]>=x)
        {
            pair<int,int> p(l,r);
            q.push(p);
            l++;
            continue;
        }
        r++;
    }
    cout<<q.top().first<<" "<<q.top().second<<endl;
    return 0;
}